package org.lanqiao.tjut.action;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.lanqiao.tjut.bean.TBStudentBean;
import org.lanqiao.tjut.myUtils.MyUtils;
import org.lanqiao.tjut.service.ServiceFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

@Controller
public class StudentInfoAction {

	@RequestMapping("/StudentInfoAddAction")
	public String saveStudetnInfo(HttpServletRequest request,TBStudentBean stuB) {
		// 打印表单数据信息
		MyUtils.logger.info("前台表单数据：" + stuB.toString());
		
		// 在保存实体类数据之前，先进行文件上传操作
		MyUtils.uploadMultiFileByRequest(request, stuB, "uploadfiles/stuImgs/", "stuImg");
		// 调用service层进行数据新增处理
		int i = ServiceFactory.getStudentInfoServiceInstance().saveStudentInfo(stuB);
		if (i > 0) {
			// 新增成功
			return "studentInfoManager/studentInfoAddDetail";
		} else {
			// 新增失败，跳到错误提示页面
			return "error";
		}
	}
	
	/**
	 * 这种文件伤处处理的接收参数的方式只能够处理单文件上传，推荐使用上面的方法可以进行多文件上传
	 * @param fileStuImg
	 * @param stuB
	 * @return
	 */
	@RequestMapping("/StudentInfoAddAction2")
	public String saveStudetnInfo2(@RequestParam("fileStuImg")MultipartFile fileStuImg,TBStudentBean stuB) {
		// 打印表单数据信息
		System.out.println("前台表单数据：" + stuB.toString());
		// 调用service层进行数据新增处理
		int i = 1;// ServiceFactory.getStudentInfoServiceInstance().saveStudentInfo(stuB);
		if (i > 0) {
			// 新增成功
			return "studentInfoManager/studentInfoAddDetail";
		} else {
			// 新增失败，跳到错误提示页面
			return "error";
		}
	}
	
	/**
	 * 如果上传文件控件有多个同名的控件(类似于checkbox),则可以使用 MultipartFile[] 数组
	 * 来接收这一组同名的file控件的值，然后再遍历MultipartFile[] 数组一一进行处理即可。
	 * @param fileStuImgs
	 * @param stuB
	 * @return
	 */
	@RequestMapping("/StudentInfoAddAction3")
	public String saveStudetnInfo3(@RequestParam("fileStuImg")MultipartFile[] fileStuImgs,TBStudentBean stuB) {
		// 打印表单数据信息
		System.out.println("前台表单数据：" + stuB.toString());
		// 调用service层进行数据新增处理
		int i = 1;// ServiceFactory.getStudentInfoServiceInstance().saveStudentInfo(stuB);
		if (i > 0) {
			// 新增成功
			return "studentInfoManager/studentInfoAddDetail";
		} else {
			// 新增失败，跳到错误提示页面
			return "error";
		}
	}

	@ResponseBody // 表示该方法是进行ajax响应处理
	@RequestMapping("/stuAjaxQueryAction")
	public List<TBStudentBean> selectStudendInfoByParams(TBStudentBean stuB) {
		// 调用service进行数据库查询操作
		List<TBStudentBean> lstStus = ServiceFactory.getStudentInfoServiceInstance().queryStudentInfoByParams(stuB);
		return lstStus;
	}
}
